In This Topic
    In This Topic

    The following example demonstrates how to create a custom data template that will be used in the footers of the first-level groups to display the results of various statistical functions.

    XAML
    Copy Code
    <Grid xmlns:xcdg="http://schemas.xceed.com/wpf/xaml/datagrid">
      <Grid.Resources>
        <xcdg:DataGridCollectionViewSource x:Key="cvs_orderdetails"
                                           Source="{Binding Source={x:Static Application.Current},
                                                            Path=OrderDetails}"> 
        <xcdg:DataGridCollectionViewSource.StatFunctions>
           <xcdg:CountFunction ResultPropertyName="orderid_count"
                               SourcePropertyName="OrderID"/>
           <xcdg:SumFunction ResultPropertyName="unitprice_sum"
                             SourcePropertyName="UnitPrice"/>
           <xcdg:AverageFunction ResultPropertyName="unitprice_average"
                                 SourcePropertyName="UnitPrice"/>
           <xcdg:SumFunction ResultPropertyName="quantity_sum"
                             SourcePropertyName="Quantity"/>
         </xcdg:DataGridCollectionViewSource.StatFunctions>       
          <xcdg:DataGridCollectionViewSource.GroupDescriptions>
            <xcdg:DataGridGroupDescription PropertyName="ProductID"/>
          </xcdg:DataGridCollectionViewSource.GroupDescriptions>
        </xcdg:DataGridCollectionViewSource>
       <xcdg:StatResultConverter x:Key="valueConverter"/>
      </Grid.Resources>
      <xcdg:DataGridControl x:Name="OrderDetailsGrid"
                            ItemsSource="{Binding Source={StaticResource cvs_orderdetails}}">
        <xcdg:DataGridControl.DefaultGroupConfiguration>
          <xcdg:GroupConfiguration>
            <xcdg:GroupConfiguration.Footers>
              <xcdg:GroupHeaderFooterItemTemplate VisibleWhenCollapsed="True">
                <DataTemplate>
                  <Border Background="#999999"
                          BorderBrush="LightBlue"
                          BorderThickness="3"
                          Margin="5" >
                    <Grid>
                      <Grid.ColumnDefinitions>
                        <ColumnDefinition/>
                        <ColumnDefinition/>
                      </Grid.ColumnDefinitions>
                      <Grid.RowDefinitions>
                        <RowDefinition/>
                        <RowDefinition/>
                        <RowDefinition/>
                        <RowDefinition/>
                      </Grid.RowDefinitions>
                      <TextBlock Text="Total Orders: " Grid.Row="0" Grid.Column="0"/>
                       <TextBlock Text="{Binding RelativeSource={RelativeSource Self},
                                                 Path=(xcdg:DataGridControl.StatContext).orderid_count}"
                                  Grid.Row="0" Grid.Column="1"/>                    
                        <TextBlock Text="Total Quantity Sold: " Grid.Row="1" Grid.Column="0"/>
                       <TextBlock Text="{Binding RelativeSource={RelativeSource Self},
                                       Path=(xcdg:DataGridControl.StatContext).quantity_sum}"
                                       Grid.Row="1" Grid.Column="1"/>  
                        <TextBlock Text="Total Sales: " Grid.Row="2" Grid.Column="0"/>
                       <TextBlock Text="{Binding RelativeSource={RelativeSource Self},
                                                 Path=(xcdg:DataGridControl.StatContext).unitprice_sum}"
                                  Grid.Row="2" Grid.Column="1"/>  
                        <TextBlock Text="Average Unit Price: " Grid.Row="3" Grid.Column="0"/>
                       <TextBlock Text="{Binding RelativeSource={RelativeSource Self},
                                                 Path=(xcdg:DataGridControl.StatContext).unitprice_average,
                                                 Converter={StaticResource valueConverter},
                                                 ConverterParameter=f2}"
                                  Grid.Row="3" Grid.Column="1"/>         
                      </Grid>
                    </Border> 
                  </DataTemplate>  
                </xcdg:GroupHeaderFooterItemTemplate>
              </xcdg:GroupConfiguration.Footers>
            </xcdg:GroupConfiguration>
          </xcdg:DataGridControl.DefaultGroupConfiguration>
          <xcdg:DataGridControl.View>
            <xcdg:CardView AllowCardResize="True"/>
          </xcdg:DataGridControl.View>
        </xcdg:DataGridControl>
      </Grid>